﻿using Estsh.Core.Base;
using Estsh.Core.Model.EnumUtil;
using Estsh.Core.Model.Extend;
using Estsh.Core.Model.Extend.IFModels;
using Estsh.Core.Model.Extend.Models;
using Estsh.Core.Model.Result;
using Estsh.Core.Models;
using Estsh.Core.Repositories;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Estsh.Core.Wms.IRepositories
{
    public interface IInterfaceMasterRepository : IBaseRepository<SapPt>
    {
        public List<SapPt_Extend> GetMaterialMasterInfo();
        public bool InsertMaterialMasterInfo(List<SapPt_Extend> sapPt);

        public List<SapSu> GetSupplierMasterInfo();
        public bool InsertSupplierMasterInfo(List<SapSu> sapSu);

        public List<SapCu> GetCustomerMasterInfo();
        public bool InsertCustomerMasterInfo(List<SapCu> sapCu);

        public List<SapPtcpt> GetCustomerItemMasterInfo();
        public bool InsertCustomerItemMasterInfo(List<SapPtcpt> sapPtcpt);

        public List<SapBom_Extend> GetBomMasterInfo();
        public bool InsertBomMasterInfo(List<SapBom_Extend> sapBom);

        public List<SapAsn> GetASNDataInfo();
        public bool InsertASNDataInfo(List<SapAsn> sapAsn);
        public List<SapDspo> GetDSPODataInfo();
        public bool InsertPODataInfo(List<SapDspo> sapDspo);

        public List<SapDn> GetSalesAndDeliveryPlanInfo();
        public bool InsertSalesAndDeliveryPlanInfo(List<SapDn> sapDn);

        public List<SapMisco> GetSporadicEntryAndExitInfo();
        public bool InsertSporadicEntryAndExitInfo(List<SapMisco> sapMiscos);

        public List<SapCyco> GetInventoryListInfo();
        public bool InsertInventoryListInfo(List<SapCyco> sapCycos);

        public List<SapDifo> GetInventoryDifferenceAdjustmentInfo();
        public bool InsertInventoryDifferenceAdjustmentInfo(List<SapDifo> sapDifos);
        public List<WmsLogistics> GetLogisticsInfo();
        public bool InsertLogisticsInfo(List<WmsLogistics> wmsLogisticsinfos);
        public List<WmsWh> GetWareHouse();
        public bool InsertWareHouseInfo(List<WmsWh> wmsWhs);
        public List<WmsZone> GetZone();
        public bool InsertZoneInfo(List<WmsZone> whlocates);
        public List<WmsToqce> GetWmsToqcs();
        public bool InsertQCInfo(List<WmsToqce> wmsToqcs);
    }
}
